// 商品相关的路由表

// 导入模块
let https = require('https')

// 创建路由表(空表)
let router = require('express').Router()

// 向路由表中添加内容:

// 获取商品列表接口
// 1.接口地址: http://localhost:8080/goods/list
// 2.请求方法: get
// 3.请求参数: type商品类型
// 4.响应数据: {"code":1,"msg":"获取数据成功","data":[...]}
router.get('/list',(req,res)=>{
    // 获取请求参数
    let {type} = req.query

    // 模拟数据
    let datas = {
        'phone': [
            {"id":1001,"name":"小米8 mini","price":"1999","imgurl":"http://localhost:8080/static/imgs/goods1.png"},
            {"id":1002,"name":"小米6 max","price":"2999","imgurl":"http://localhost:8080/static/imgs/goods2.png"},
            {"id":1003,"name":"小米9 pro max","price":"4999","imgurl":"http://localhost:8080/static/imgs/goods3.png"}
        ],
        'shoes': [
            {"id":2001,"name":"老北京布鞋","price":"199","imgurl":"http://localhost:8080/static/imgs/goods4.png"},
            {"id":2002,"name":"情侣款时尚板鞋","price":"288","imgurl":"http://localhost:8080/static/imgs/goods5.png"},
            {"id":2003,"name":"休闲运动帆布鞋","price":"169","imgurl":"http://localhost:8080/static/imgs/goods6.png"}
        ]
    }

    // 简单的校验
    if (type === 'phone' || type === 'shoes') {
        // 响应前端
        res.send({"code":1,"msg":"获取数据成功","data":datas[type]})
    } else {
        // 响应前端
        res.send({"code":0,"msg":"获取数据失败","data":[]})
    }
})

// 测试接口
router.get('/test1',(req,res)=>{
    res.send({"msg":"测试成功1"})
    
    // setTimeout(()=>{
    //     res.send({"msg":"测试成功2"})
    // },3000)
})
router.post('/test2',(req,res)=>{
    res.send({"msg":"测试成功2"})
    
    // setTimeout(()=>{
    //     res.send({"msg":"测试成功2"})
    // },3000)
})


// 去别人的服务器获取数据的接口
router.get('/getData',(req,res)=>{
    // 去别人的服务器获取数据
    let url = 'https://m.you.163.com/xhr/index.json'
    https.get(url,(response)=>{// 请求完成的回调函数
        // 接收数据:
        let datas = ''

        // 当接收到数据时,会触发一个 data 事件
        // 数据会分为多段传输回来
        response.on('data',(chunk)=>{
            // chunk 数据片段
            // console.log( chunk )// 默认返回的是Buffer数据(二进制流数据)
            // console.log( chunk+'' )// 将数据片段转成字符串
            datas += chunk // 将多个数据片段拼接起来
        })
        // console.log( '-------------',datas )

        // 监听数据传输完成的事件 end
        response.on('end',()=>{
            // 数据接收完成时触发end事件
            // console.log( '-------------',datas )
            
            // 将数据响应给前端
            res.send(datas)
        })
    })
})

// jsonp测试接口
router.get('/jsonp',(req,res)=>{
    // res.send('alert("hello 老王")')
    // res.send('var arr = [123,456,789]')
    // res.send('test(3,7)')

    let arr = '["商品1","商品2","商品3","商品4"]'
    // 'render('+arr+')'
    res.send(`render(${arr})`)// 'render([...])'
})

router.get('/getList',(req,res)=>{
    // let {cb} = req.query // 'test'
    let {callback} = req.query // 'test'
    let data = [
        {"name":"海静","age":22,"hobby":"游泳-洗脚-喝酒-看别人游泳"},
        {"name":"子豪","age":20,"hobby":"首充-美女-按摩-看书"},
        {"name":"阿水","age":19,"hobby":"旅游-跳舞-唱歌-消费"}
    ]
    res.send(`${callback}(${JSON.stringify(data)})`)// 'test([{},{}])'
})

// 导出路由表
module.exports = router
